home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.3 Development Libraries / SGI IRIX 6.3 Development Libraries.iso / dist6.3 / ViewKit_dev.idb / usr / include / Vk / VkMsgClient.h.z / VkMsgClient.h
Encoding:
C/C++ Source or Header  |  1996-09-20  |  4.4 KB  |  118 lines

  1. #ifndef VK_MSG_CLIENT
  2. #define VK_MSG_CLIENT
  3.  
  4. #include <Vk/VkMsgService.h>
  5.  
  6. typedef Boolean (*VkMsgClientAction)(
  7. #if NeedFunctionPrototypes
  8.   void*            /* client_data */,
  9.   VkMsgFacilityReason    /* reason */,  
  10.   VkMsgMessage        /* msg_in */,
  11.   char*            /* op */,
  12.   int            /* argc */,
  13.   VkMsgArg*        /* argv */
  14. #endif
  15. );
  16.  
  17. typedef struct {
  18.   char *name;
  19.   VkMsgClientAction proc;
  20.   void *client_data;
  21.   Boolean deleteMessage;
  22. } VkMsgClientTranslationPair;
  23.  
  24. class VkMsgClient {
  25. public:
  26.   VkMsgClient(VkMsgFacilityCallback callback = NULL, void *client_data = NULL);
  27.   ~VkMsgClient();
  28.  
  29.   void registerPattern(char *op,
  30.                VkMsgCategory category = VK_MSG_OBSERVE)
  31.     { theMessageService->registerPattern(op, category); }
  32.  
  33.   void updatePatterns() { theMessageService->updatePatterns(); }
  34.  
  35.   VkMsgPattern addAction(char *op, VkMsgClientAction proc,
  36.              void *client_data, VkMsgActionType type,
  37.              Boolean deleteMessage = True);
  38.   VkMsgPattern createAction(char *op, VkMsgClientAction proc,
  39.                 void *client_data, VkMsgActionType type,
  40.                 Boolean deleteMessage = True);
  41.   void removeAction(VkMsgPattern pat);
  42.  
  43.   void addTranslation(char *name, VkMsgClientAction proc, void *client_data,
  44.               Boolean deleteMessage = True);
  45.   void removeTranslation(char *name);
  46.   Boolean findAction(char *name, VkMsgClientAction *proc,
  47.              void **client_data, Boolean *deleteMessage);
  48.  
  49.   void sendNotice(char *op, int argc, VkMsgArg *argv)
  50.     { theMessageService->sendNotice(op, argc, argv); }
  51.   void sendNotice(char *op)
  52.     { theMessageService->sendNotice(op); }
  53.   void sendStringNotice(char *op ...);
  54.   void sendIntNotice(char *op ...);
  55.  
  56.   void sendFileNotice(char *op, char *file, int argc, VkMsgArg *argv)
  57.     { theMessageService->sendFileNotice(op, file, argc, argv); }
  58.   void sendFileNotice(char *op, char *file)
  59.     { theMessageService->sendFileNotice(op, file); }
  60.   void sendStringFileNotice(char *op, char *file ...);
  61.   void sendIntFileNotice(char *op, char *file ...);
  62.  
  63.   VkMsgMessage sendRequest(char *op, int argc, VkMsgArg *argv)
  64.     { return theMessageService->sendRequest(this, op, argc, argv); }
  65.   VkMsgMessage sendRequest(char *op)
  66.     { return theMessageService->sendRequest(this, op); }
  67.   VkMsgMessage sendSyncRequest(char *op, int argc, VkMsgArg *argv,
  68.                    int timeout = DEFAULT_SYNC_TIMEOUT)
  69.     { return theMessageService->sendSyncRequest(op, argc, argv, timeout); }
  70.   VkMsgMessage sendSyncRequest(char *op, int timeout = DEFAULT_SYNC_TIMEOUT)
  71.     { return theMessageService->sendSyncRequest(op, timeout); }
  72.   VkMsgMessage sendRequest(VkMsgMessage msg_out)
  73.     { return theMessageService->sendRequest(this, msg_out); }
  74.  
  75.   VkMsgMessage sendFileRequest(char *op, char *file, int argc, VkMsgArg *argv)
  76.     { return theMessageService->sendFileRequest(this, op, file, argc, argv); }
  77.   VkMsgMessage sendFileRequest(char *op, char *file)
  78.     { return theMessageService->sendFileRequest(this, op, file); }
  79.   VkMsgMessage sendSyncFileRequest(char *op, char *file,
  80.                    int argc, VkMsgArg *argv,
  81.                    int timeout = DEFAULT_SYNC_TIMEOUT)
  82.     { return theMessageService->sendSyncFileRequest(op, file, argc, argv,
  83.                             timeout); }
  84.   VkMsgMessage sendSyncFileRequest(char *op, char *file,
  85.                    int timeout = DEFAULT_SYNC_TIMEOUT)
  86.     { return theMessageService->sendSyncFileRequest(op, file, timeout); }
  87.  
  88.   void composeBegin()
  89.     { theMessageService->composeBegin(); }
  90.   void composeAdd(VkMsgArg *arg)
  91.     { theMessageService->composeAdd(arg); }
  92.   void composeAdd(char *val, VkMsgMode mode = VK_MSG_IN)
  93.     { theMessageService->composeAdd(val, mode); }
  94.   void composeAdd(int ival, VkMsgMode mode = VK_MSG_IN)
  95.     { theMessageService->composeAdd(ival, mode); }
  96.   void composeAdd(unsigned char *val, int len, VkMsgMode mode = VK_MSG_IN)
  97.     { theMessageService->composeAdd(val, len, mode); }
  98.   VkMsgArg *composeList() { return theMessageService->composeList(); }
  99.   int composeNum() { return theMessageService->composeNum(); }
  100.  
  101.   VkMsgStatus registerPattern(VkMsgPattern p);
  102.   VkMsgStatus unregisterPattern(VkMsgPattern p);
  103.   VkMsgStatus destroyPattern(VkMsgPattern p)
  104.     { return theMessageService->destroyPattern(p); }
  105.  
  106. protected:
  107.   int findActionIndex(char *name);
  108.   void addMangledTranslation(char *name, VkMsgClientAction proc,
  109.                  void *client_data, Boolean deleteMessage = True);
  110.  
  111.   int numTranslations, sizeTranslations;
  112.   VkMsgClientTranslationPair *translationPairs;
  113.   int numPatterns, sizePatterns;
  114.   VkMsgPattern *patterns;
  115. };
  116.  
  117. #endif
  118.